collectdのCloudWatchプラグインでデフォルト以外の様々なデータをカスタムメトリクスで送る方法
こんにちわ。ビーコンと言えばガイドビーコンしか連想できないガノタ市田です。
今回は、表題の通りcollectdで集めた色んなデータをcloudwatchに送る方法についてです。
Apacheのデータを送ってみる
今回は、試しにcollectdで収集したApacheの各種情報をCloudWatchに送ってみたいと思います。
尚、collectdのCloudwatchプラグインは前回のエントリの内容で設定済みとします。
対象はAmazon Linuxとし、Apacheはyum
コマンドでインストールしたデフォルト設定を前提とします。
collectdのApacheプラグインの導入
collectdでApacheのリソース情報を収集するには専用のプラグインが必要になります。Amazon Linuxなどではyum
コマンドで導入可能です。
yum -y install collectd-apache
Apacheの設定変更
collectdがApacheの情報を取得できるようにします。設定変更は/etc/httpd/httpd.conf
で行います。
httpd.conf
に下記の内容を追記して、localhost
からcollectd
がアクセスできるようにします。
追記場所は、922行目あたりのコメントアウトになっている#<Location /server-status>
ディレクティブの下辺りに追記します。
ExtendedStatus on <Location /mod_status> SetHandler server-status Order deny,allow Deny from all Allow from localhost </Location>
追記したらapacheを再起動します
service httpd restart
localhostからステータスページにアクセスできることを確認します。
curl http://localhost/mod_status?auto Total Accesses: 2 Total kBytes: 0 Uptime: 338 ReqPerSec: .00591716 BytesPerSec: 0 BytesPerReq: 0 BusyWorkers: 1 IdleWorkers: 8 Scoreboard: _______W_..(略)
このApacheの設定は下記のcollectdのドキュメントに則った記載になります。
ただし、デフォルトのままではAnywhereでステータスページにアクセスできるので、localhostからのアクセスのみに制限しています。
collectd.conf(5) – collectd – The system statistics collection daemon _
collectdの設定変更
collectdの設定ファイルは/etc/collectd.conf
です。Apacheの情報を収集できるように設定を修正します。
まずは、Apacheのプラグインを有効にします。コメントアウトになっている下記のコメントを外します。
LoadPlugin apache
次に情報を取得するステータスページの設定を修正します。ベーシック認証などは設定していないので、下記の通りURLだけ修正します。
- 変更前
#<Plugin apache> # <Instance "local"> # URL "http://localhost/status?auto" # User "www-user" # Password "secret" # CACert "/etc/ssl/ca.crt" # </Instance> #</Plugin>
- 変更後
<Plugin apache> <Instance "local"> URL "http://localhost/mod_status?auto" # User "www-user" # Password "secret" # CACert "/etc/ssl/ca.crt" </Instance> </Plugin>
変更したらcollectd
を再起動します。
service collectd restart
collectdの動作確認
この状態で、Apacheの情報がCloudWatchへのデータ送信対象に入っているか確認します。
cat /opt/collectd-plugins/cloudwatch/config/blocked_metrics
下記のように、apache-local-apache
という項目が追記されていたらOKです。
# This file is automatically generated - do not modify this file. # Use this file to find metrics to be added to the whitelist file instead. cpu-0-cpu-user cpu-0-cpu-nice cpu-0-cpu-system cpu-0-cpu-idle cpu-0-cpu-wait cpu-0-cpu-interrupt cpu-0-cpu-softirq cpu-0-cpu-steal interface-lo-if_octets- interface-lo-if_packets- interface-lo-if_errors- interface-eth0-if_octets- interface-eth0-if_packets- interface-eth0-if_errors- load--load- memory--memory-used memory--memory-buffered memory--memory-cached memory--memory-free apache-local-apache_requests- apache-local-apache_bytes- apache-local-apache_connections- apache-local-apache_idle_workers- apache-local-apache_scoreboard-open apache-local-apache_scoreboard-waiting apache-local-apache_scoreboard-starting apache-local-apache_scoreboard-reading apache-local-apache_scoreboard-sending apache-local-apache_scoreboard-keepalive apache-local-apache_scoreboard-dnslookup apache-local-apache_scoreboard-closing apache-local-apache_scoreboard-logging apache-local-apache_scoreboard-finishing apache-local-apache_scoreboard-idle_cleanup
CloudWatchに送信する
それでは、ホワイトリストにApache情報を登録して、CloudWatchにデータを送ってみます。
vi /opt/collectd-plugins/cloudwatch/config/whitelist.conf
Apacheに関する全ての情報を送りたいと思うので、下記のように記載します。
apache-local-apache_.*
collectdを再起動します。
service collectd restart
念のため、ブロックファイルを見てみます。
cat /opt/collectd-plugins/cloudwatch/config/blocked_metrics
下記のようにApache関連の項目がなくなっていればOKです。
# This file is automatically generated - do not modify this file. # Use this file to find metrics to be added to the whitelist file instead. cpu-0-cpu-user cpu-0-cpu-nice cpu-0-cpu-system cpu-0-cpu-idle cpu-0-cpu-wait cpu-0-cpu-interrupt cpu-0-cpu-softirq cpu-0-cpu-steal interface-lo-if_octets- interface-lo-if_packets- interface-lo-if_errors- interface-eth0-if_octets- interface-eth0-if_packets- interface-eth0-if_errors- load--load- memory--memory-used memory--memory-buffered memory--memory-cached memory--memory-free
CloudWatchの確認
最後にCloudWatch側で確認します。カスタムメトリクスを選択します。
この状態でグラフが出ていればOKです。
最後に
collectdは今回のようなApache以外にも取得できる情報の種類が非常に多いので、色んなデータを簡単にカスタムメトリクスでCloudWacthに送ることができるようになりました。
また、collectdは以前からあるものなので、既存のナレッジがそのまま活かせるというのも大きなメリットだと思います。
是非ご活用ください。
以上になります。